H5游戏引擎


白鹭引擎

Texture Merger 可以实现序列帧动画、图片字体、图片整合

  1. 序列帧动画注意事项

    a 动画名和导出名应该一致或固定规律,方便程序导入
    b 编辑动画的中心点,设置y为0,x为站立动作的左边缘
    
  2. Wing 里修改调试port端口号

    默认是5758,通过修改文件.wing/launch.json文件修改

    "port":5758
    
  3. TiledMap 里面的bug

    必须有这句,里面的TMXObject才会有值!!!!!! element.draw();

    let mapGroups: tiled.TMXObjectGroup[] = tmxTileMap.getObjects();
    for (let element of mapGroups) {
        if (element.name == "obj") {
            element.draw();// !!!!!!必须有这句,里面的TMXObject才会有值,这他妈是个bug!!!!!!!!
            for (let i = 0; i < element.getObjectCount(); i++) {
                let obj: tiled.TMXObject = element.getObjectByIndex(i);
    
  1. addEventListener一定要和removeEventListener配对,否则后果很严重!!!

    addEventListener一定要和removeEventListener配对,否则后果很严重!!!

  2. =>的妙用

    回调方法中this一般不能用,但使用=>这个可以很方便使用this

    原来:
    
    let self = this;
    // 加载地图数据
    this.stageMap.loadMap("resource/assets/map/stage03.tmx", function (tmxTileMap: tiled.TMXTilemap): void {
            self.bm.addChild(self.stageMap);
       });
    
    现在:
    
    // 加载地图数据
    this.stageMap.loadMap("resource/assets/map/stage03.tmx", (tmxTileMap: tiled.TMXTilemap) => {
            this.bm.addChild(this.stageMap);
        });
    
  1. 音乐节拍的应用

    /** 跳到下一个音阶所需帧数 */
    public static STEP_NUM: number = 16;
    // x方向基本速度
    public static VX: number = 8;
    /** 帧间隔时间 ms 
     * 128bpm的音乐,对应24.4ms
     * 126bpm的音乐,对应24.8ms
     * 125bpm的音乐,对应25ms
     * 71bpm的音乐,对应21.6ms
     * 每1bpm,对应0.2ms
     * 帧间隔 = 25 - 0.2*(bpm - 125)
     * 使用《格式工厂》转成mp3,44100赫兹,96比特率
     * 再用《audioretoucher3》查看mp3的bpm值
    */
    public static FRAME_STEP: number = 24.8;
    

寻路算法 PathFinding

基本用法

    this.grid = new PF.Grid(this.map_h, this.map_w, this.map);
    let option: PF.Option = new PF.Option();
    option.allowDiagonal = true;
    option.dontCrossCorners = true;
    this.finder = new PF.AStarFinder(option);
    let path = this.finder.findPath(this.start_y, this.start_x, this.goal_y, this.goal_x, this.grid);

H5游戏

HTML5游戏开发经验及开发工具分享

  1. 自动保存用户的记录

  2. 使用profiler

    通过按下F12按键可以打开开发工具面板。选择“Profile”选项然后选中“Start profiling”。在你觉得性能需要提升的地方停留30秒,profiler将收集相关数据,然后选择“stop profiling”。你将看到你的游戏中的每个功能的累积执行时间。通常,你会发现某些功能占用了大部分的时间。这样你就能有针对性地优化那些特别耗时的功能了。

    不要过分相信自己的直觉——有些代码可能看起来效率很低,但在某些JavaScript引擎上执行起来速度却很快。最好的办法就是时常地反复分析程序,对于修改过的代码,需要反复进行测试确保你的修改确实能够提升程序的性能。

  3. fnt字体制作工具

    http://www.angelcode.com/products/bmfont/